package com.liu.staticProxyDemo_1_0_version;
//代理对象张三，包含了真实对象的引用，为真实对象的服务进行增强，和真实对象继承同一个接口
public class Zhangsan implements ManToolsFactory {

    //被包含的真实对象的引用,通过构造方法从外界传递真实对象
    //父类可以代替子类
    public ManToolsFactory factory;

    public Zhangsan(ManToolsFactory factory){
        super();
        this.factory=factory;
    }
    @Override
    public void saleManTools(String size) {
       dosomeThingBefore(); //前置增强
       factory.saleManTools(size);//后置增强
       dosomeThingEnd();
    }
    //售后服务 (前置增强)
    private void dosomeThingEnd(){
        System.out.println("精美包装,一条龙服务！");
    }
//    售前服务(前置增强)
    private void dosomeThingBefore(){
        System.out.println("根据您的需求，进行合理推荐一款合适您的产品");
    }


}
